package models

import (
	"log"
	"time"
)

// icon表
type Icons struct {
	Id         int64     `json:"id" db:"id"`                   //
	IconCls    string    `json:"icon_cls" db:"icon_cls"`       // icon class
	IconText   string    `json:"icon_text" db:"icon_text"`     // icon 名字
	CreateTime time.Time `json:"create_time" db:"create_time"` // 创建时间
	CreateId   int64     `json:"create_id" db:"create_id"`     //
	UpdateId   int64     `json:"update_id" db:"update_id"`     //
	UpdateTime time.Time `json:"update_time" db:"update_time"` //

}

func GetIconsList4Pager(form SearchForm) *PageResult {
	sqlWhere := " 1=1 " // todo sql条件 可以自定义

	params := make([]interface{}, 0)

	// todo sql条件 可以自定义
	// i := 1
	// key := form.GetStr("key")
	// if len(key) > 0 {
	// 	params = append(params, "%"+key+"%")
	// 	sqlWhere += " and (key like $" + utils.IntToStr(i) + " or value like $" + utils.IntToStr(i) +
	// 		" or remark like $" + utils.IntToStr(i) + " or name like $" + utils.IntToStr(i) + ")"
	// 	i++
	// }
	return PageHavePre("", "", "*", "icons", sqlWhere, "sort", form.Page, params...)
}

// 删除
func DeleteIcons(id int64) int64 {
	sqlSave := "delete from icons  where id=:id"
	db, _ := OpenDB()
	defer db.Close()
	param := map[string]interface{}{"id": id}
	result, err := db.NamedExec(sqlSave, param)
	if err != nil {
		log.Fatalln(err)
		return 0
	} else {
		i, _ := result.RowsAffected()
		return i
	}
}

// 添加用户
func AddIconsData(data *Icons) int64 {

	sqlSave := `
		INSERT INTO icons( icon_cls   icon_text   create_time   create_id   update_id   update_time )
		
		VALUES (icon_cls   icon_text   create_time   create_id   update_id   update_time )`
	db, _ := OpenDB()
	defer db.Close()
	result, err := db.NamedExec(sqlSave, data)
	if err != nil {
		log.Fatalln(err)
		return 0
	} else {
		i, _ := result.RowsAffected()
		return i
	}
}

// 更新
func UpdateIcons(data *Icons) int64 {
	sqlSave := `update icons set icon_cls=:icon_cls    icon_text=:icon_text    create_time=:create_time    create_id=:create_id    update_id=:update_id    update_time=:update_time 
	where id=:id`
	db, _ := OpenDB()
	defer db.Close()
	result, err := db.NamedExec(sqlSave, data)
	if err != nil {
		log.Fatalln(err)
		return 0
	} else {
		i, _ := result.RowsAffected()
		return i
	}
}
